package com.zhou.pojo;

import lombok.Data;

import javax.persistence.*;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

/**
 * @CiassName Department
 * @Description TODO
 * @Author ZhouFeiHong
 * @Date 2021/9/621:34
 * @Version 1.o
 **/
@Entity
@Data
public class Department implements Serializable {
    // 声明了 一 个属性将映射到数据库主键宇段。主键生成策略由注解
    @Id
    //  id 为自增主键，是一种简单的数据库主键生成策略，因此使用 GenerationType .IDENTITY 作为主键生成的策略
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    // 此注解表明属性对应到数据库的一个字段，且列名为 name 指定的名称
    @Column
    private String name;

    // 多对一关系,一个部门拥有多个用户
    //  One”端采用＠OneToMany 注解时必须使用 mappedBy ， 以
    //      声明 Many 端的对象（在这里是 User 实体）的 department 属性提供了对应的关系映射。
    @OneToMany(mappedBy = "department")
    private Set<User> users = new HashSet<>();
}
